package com.insight.dto.export;

import com.insight.common.enums.ExportFormat;
import com.insight.common.enums.ExportStatus;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 数据字典导出响应DTO
 *
 * @author Insight Team
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ExportResponse {

    /**
     * 导出记录ID
     */
    private Long id;

    /**
     * 数据源ID
     */
    private Long datasourceId;

    /**
     * 数据源名称
     */
    private String datasourceName;

    /**
     * 导出格式
     */
    private ExportFormat format;

    /**
     * 文件名
     */
    private String fileName;

    /**
     * 下载URL(本地文件或MinIO预签名URL)
     */
    private String downloadUrl;

    /**
     * 文件大小(字节)
     */
    private Long fileSize;

    /**
     * 格式化文件大小
     */
    private String fileSizeFormatted;

    /**
     * 本地文件过期时间
     */
    private LocalDateTime expiresAt;

    /**
     * 是否已归档到MinIO
     */
    private Boolean isArchived;

    /**
     * 导出状态
     */
    private ExportStatus status;

    /**
     * 创建时间
     */
    private LocalDateTime createdAt;

    /**
     * 本地文件是否已过期
     */
    private Boolean isExpired;

    /**
     * 本地文件路径(仅内部使用,不暴露给前端)
     */
    private String localPath;
}
